﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WastedMechanics.CharState
{
    public abstract class CharState
    {
        protected Character Character;

        public CharState(Character character)
        {
            Character = character;
        }

        public virtual void Enter() { }
        public virtual void Exit() { }

        public virtual void MoveOrder(bool run) { }
        public virtual void HaltOrder() { }
        public virtual void IdleOrder() { }
        public virtual void JumpOrder() { }
        public virtual void PickOrder(Described target) { }
        public virtual void EquipOrder() { }
        public virtual void TakePistol() { }
        public virtual void TakeM1H() { }
        public virtual void HideWeapon() { }
        public virtual void AimOrder() { }
        public virtual void StopAimingOrder() { }
        public virtual void RecoilOrder() { }
        public virtual void ClimbOrder() { }
        public virtual void M1HHitOrder(SelectableObject Target) { }

        public virtual bool IsNotBusy() { return false; }

        public void EquipFinishOrder()
        {
            HaltOrder();
        }

        public virtual void Update() { }
   
    }
}
